前面兩篇文章介紹了 比較查詢運算子、邏輯查詢運算子 及 元素查詢運算子,今天要來介紹 Array 相關查詢運算子。
在實際資料裡,許多 field 所儲存的值是 array 的形式,因此我們會需要對 array 裡的資料進行查詢,以下透過三個例子來介紹要如何對 array 裡的資料進行相關的查詢操作。
[
    {
        "name": "Jack",
        "age": 27,
        "hobby": [
            {
                "type": "Movie",
                "rating": 3
            },
            {
                "type": "Sports",
                "rating": 6
            }
        ]
    },
    {
        "name": "Mark",
        "age": 25,
        "hobby": [
            {
                "type": "Movie",
                "rating": 2
            },
            {
                "type": "Cook",
                "rating": 5
            },
            {
                "type": "Music",
                "rating": 4
            }
        ]
    }
]
db.people.find({"hobby.type": "Movie"}).pretty()
$size 這個運算子db.people.find({hobby: {$size: 3}}).pretty() 
$elemMatch 這個運算子db.people.find({hobby: {$elemMatch: {type: "Movie"}, rating: 3}}).pretty() 
今天延續前兩篇介紹 MongoDB 的查詢運算子,若是要查詢 array 結構的資料,可以使用以上幾種方法進行查詢。
修正範例3的語法:
db.people.find({
hobby: {
$elemMatch: {
type: "Movie",
rating: 3
}
}
})